package org.dromara.bzIns.domain.bo;

import org.dromara.bzIns.domain.Notice;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;

/**
 * 通知信息业务对象 bz_notice
 *
 * @author bz_huaYal9146
 * @date 2025-03-28
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = Notice.class, reverseConvertGenerate = false)
public class NoticeBo extends BaseEntity {

    /**
     * 通知id
     */
    @NotNull(message = "通知id不能为空", groups = { EditGroup.class })
    private Long noticeId;

    /**
     * 通知内容
     */
    private String noticeContent;

    /**
     * 通知的保险公司id
     */
    @NotNull(message = "通知的保险公司id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long insCompanyId;

    /**
     * 通知的保险公司名称
     */
    private String insCompanyName;

    /**
     * 是否显示  0-显示，1-不显示
     */
    private Long isDisplay;

    /**
     * 用户id（把他的信息通知保险人员）
     */
    @NotNull(message = "用户id（把他的信息通知保险人员）不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long userId;

    /**
     * 用户汽车id（把他的信息通知保险人员）
     */
    @NotNull(message = "用户汽车id（把他的信息通知保险人员）不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long carId;

    /**
     * 车牌号
     */
    @NotBlank(message = "车牌号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String carPlate;

    /**
     * 报价价格
     */
    @NotNull(message = "报价价格不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long quotePrice;

    /**
     * 被通知的用户id（保险人员）
     */
    private Long noticeUserId;

    /**
     * 被通知的用户（保险人员）联系方式
     */
    private String noteceUserPhone;

    /**
     * 被通知的用户（保险人员）微信标识
     */
    private String noteceWxId;

    /**
     * 通知状态：0-未发送，1-已发送，2-状态异常（可定时任务，隔断时间发送）
     */
    private int checkStatus;


}
